<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>函数的调用方法</title>
</head>

<body>
    <script>
        // 10、国际象棋64格，第一个放一粒，后面每一格都放上一格的2倍，问第64格上会放多少粒（用函数实现）

        //命名函数

        //无参数,有返回值
        // function getRice(){

        //     for(var i=1;i<=64;i++){
        //         if(i==64){
        //            var sum = Math.pow(2,i-1);
        //         }
        //     }
        //     return sum;
        // }
        // console.log('第64格共有'+getRice()+'粒米');

        //无参数,无返回值
        // function getRice() {
        //     for (var i = 1; i <= 64; i++) {
        //         if (i == 64) {
        //             var sum = Math.pow(2, i - 1);
        //             console.log('第64格共有' + sum + '粒米');
        //         }
        //     }
        //     return sum;
        // }
        // getRice()

        //有参,无返回值
        // function getRice(times){
        //     var sum = Math.pow(2,times-1);
        //     console.log('第'+times+'格共有' + sum + '粒米');
        // }
        // var times = prompt('请输入获取第几个格子的米粒:')
        // getRice(times)

        //有参,有返回值
        // function getRice(times) {
        //     var sum = Math.pow(2, times - 1);
        //     return sum;
        // }
        // var times = prompt('请输入获取第几个格子的米粒:')
        // var sum = getRice(times)
        // console.log('第'+times+'格共有' + sum + '粒米');

        //匿名函数

        // 函数表达式    调用时，只能在声明的后面来调用
        
        //无参
        // var getRice = function () {
        //         for (var i = 1; i <= 64; i++) {
        //             if (i == 64) {
        //                 var sum = Math.pow(2, i - 1);
        //             }
        //         }
        //         return sum;
        //     }
        // console.log('第64格共有' + getRice() + '粒米');

        //有参
        // var getRice = function (times) {
        //     var sum = Math.pow(2, times - 1);
        //     return sum;
        // }
        // var times = prompt('请输入获取第几个格子的米粒:')
        // var sum = getRice(times)
        // console.log('第'+times+'格共有' + sum + '粒米');

        // 自执行函数    结尾分号不省略

        //无参
        // (function () {

        //     for (var i = 1; i <= 64; i++) {
        //         if (i == 64) {
        //             var sum = Math.pow(2, i - 1);
        //         }
        //     }
        //     console.log('第64格共有' + sum + '粒米');
        // })();


        //无返回值
        // (function (times) {
        //     var sum = Math.pow(2, times - 1);
        //     console.log('第64格共有' + sum + '粒米');
        // })(64);

        //有返回值
        // var sum = (function (times) {
        //     var sum = Math.pow(2, times - 1);
        //     return sum;
        // })(64)
        // console.log('第64格共有' + sum + '粒米');
    </script>

</body>

</html>